vsftp部署和优化

        作为系统默认自带的 ftp 服务软件,vsftp 也是比较常用的。

1.安装 vsftp

1
[root@192 ~]# yum install -y vsftpd db4-utils

        这里安装两个软件包,同时会把依赖的包安装上。其中 db4-utils 用来生成木马库文件。

2.建立帐号

        vsftp 默认是可以支持使用系统帐号体系登录的,但这样不太安全,所以建议使用虚拟账号体系。

        建立虚拟账号相关的系统帐号

1
[root@192 ~]# useradd virftp -s /sbin/nologin

        建立虚拟账户相关的文件

1
[root@192 ~]# vim /etc/vsftpd/vsftpd_login

        内容如下:

1
2
3
4
test1
123456
test2
abcdef

        更改该文件的权限,提升安全级别

1
[root@192 ~]# chmod 600 /etc/vsftpd/vsftpd_login

        vsftpd 使用的密码文件肯定不是铭文的,需要生成对应的库文件:

1
[root@192 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

        建立虚拟帐号相关的目录以及配置文件

1
2
[root@192 ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@192 ~]# cd /etc/vsftpd/vsftpd_user_conf

        3.创建和用户对应的配置文件

1
[root@192 vsftpd_user_conf]# vim test1

        内容如下:

1
2
3
4
5
6
7
8
9
10
11
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000

        说明:local_root 为该帐号的家目录,anonymous_enable 用来限制是否允许匿名帐号登录,若为 NO 表示不允许匿名帐号登录, write_enable=YES 表示可写,local_umask 指定 umask 值,anon_upload_enable 是否允许匿名帐号上传文件,anon_mkdir_write_enable 是否允许匿名帐号可写。以上为关键参数,其他暂时不用关心,创建 test2 帐号的步骤和 test1 一样。

1
2
3
[root@192 vsftpd_user_conf]# mkdir /home/virftp/test1
[root@192 vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[root@192 vsftpd_user_conf]# vim /etc/pam.d/vsftpd

        在最开头添加两行:

1
2
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

        说明:linux 为 64 位系统,所以库文件为 /lib64/security/pam_userdb.so ,若系统为 32位,那么库文件在 /lib/security/pam_userdb.so

4.修改全局配置文件 /etc/vsftpd.conf

1
[root@192 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf

        改为

        改为

        改为

        再增加:

1
2
3
4
5
chroot_local_user=YES
guest_enabled=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

        最后启动 vsftpd 服务

1
2
[root@192 vsftpd_user_conf]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd: [确定]

        如果服务启动不了,很有可能是前面 21端口占用。测试过程和 pure-ftpd 一样,如果用户无法登录,查看日志 /var/log/srcure